package com.kingdee.eas.fi.gl.app;

import com.kingdee.bos.BOSException;
//import com.kingdee.bos.metadata.*;
import com.kingdee.bos.framework.*;
import com.kingdee.bos.util.*;
import com.kingdee.bos.Context;

import com.kingdee.eas.ma.bg.BgCtrlParam;
import com.kingdee.bos.dao.IObjectPK;
import com.kingdee.eas.fi.gl.VoucherCollection;
import com.kingdee.eas.framework.CoreBaseCollection;
import com.kingdee.eas.fi.gl.VoucherInfo;
import com.kingdee.bos.util.*;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.Context;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.dao.IObjectCollection;
import com.kingdee.bos.util.BOSUuid;
import java.util.List;
import java.util.Vector;
import java.lang.String;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.eas.fi.gl.cslacct.CheckViewInfo;
import java.util.Map;
import java.math.BigDecimal;
import java.util.HashMap;
import com.kingdee.eas.fi.gl.GLPeriodEndFilter;
import java.util.Date;
import com.kingdee.eas.fi.cas.JournalCollection;
import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;
import com.kingdee.bos.metadata.entity.SelectorItemCollection;
import java.util.Set;
import com.kingdee.eas.fi.gl.VoucherOperateStatusEnum;
import com.kingdee.eas.fi.gl.VoucherStatusEnum;
import com.kingdee.eas.framework.SystemEnum;
import com.kingdee.eas.fi.gl.VoucherAssistRecordCollection;
import com.kingdee.eas.framework.CoreBaseInfo;
import java.util.Collection;
import com.kingdee.bos.framework.*;
import com.kingdee.eas.framework.app.BillBaseController;

import java.rmi.RemoteException;
import com.kingdee.bos.framework.ejb.BizController;

public interface VoucherController extends BillBaseController
{
    public VoucherCollection getVoucherCollection(Context ctx) throws BOSException, RemoteException;
    public VoucherCollection getVoucherCollection(Context ctx, EntityViewInfo view) throws BOSException, RemoteException;
    public VoucherCollection getVoucherCollection(Context ctx, String oql) throws BOSException, RemoteException;
    public IObjectPK exteriorSubmit(Context ctx, IObjectValue model) throws BOSException, EASBizException, RemoteException;
    public IObjectPK exteriorSave(Context ctx, IObjectValue model) throws BOSException, EASBizException, RemoteException;
    public VoucherInfo generateReverseVoucher(Context ctx, String srcVchId, Object[] genParam) throws BOSException, EASBizException, RemoteException;
    public void auditVoucher(Context ctx, IObjectPK pk, BOSUuid auditorId) throws BOSException, EASBizException, RemoteException;
    public void antiAuditVoucher(Context ctx, IObjectPK pk, VoucherStatusEnum preStatus) throws BOSException, EASBizException, RemoteException;
    public void checkVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void checkVoucher(Context ctx, IObjectCollection journalCollection, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void antiCheckVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void postVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void autoPostVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void antiPostVoucher(Context ctx, IObjectPK pk, VoucherStatusEnum preStatus) throws BOSException, EASBizException, RemoteException;
    public void cancelVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void antiCancelVoucher(Context ctx, IObjectPK pk, VoucherStatusEnum preStatus) throws BOSException, EASBizException, RemoteException;
    public void bgAuditVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void antiBgAuditVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void bgAndAudit(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void antiBgAndAudit(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean hasVoucherInCurrentPeriod(Context ctx, BOSUuid prdId, SystemEnum sys) throws BOSException, EASBizException, RemoteException;
    public void setSubmitStatus(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void setCheckStatus(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void setAuditStatus(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public VoucherInfo exteriorLazyLoad(Context ctx, VoucherInfo voucherInfo, SelectorItemCollection selectorItemCollection) throws BOSException, EASBizException, RemoteException;
    public BgCtrlParam[] getBgCtrlParamFromVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean existsCashOrBankAccount(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public HashMap fetchAllCustProp(Context ctx, Vector entryIds) throws BOSException, EASBizException, RemoteException;
    public void deleteBySys(Context ctx, Vector vecPK, SystemEnum sys) throws BOSException, EASBizException, RemoteException;
    public void deleteWebService(Context ctx, Vector vctPK, CompanyOrgUnitInfo companyOrgUnitInfomation) throws BOSException, EASBizException, RemoteException;
    public void deleteFun(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean isHandcraftVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public Collection getReq(Context ctx, BOSUuid vchId) throws BOSException, EASBizException, RemoteException;
    public Collection getReq(Context ctx, CheckViewInfo cond) throws BOSException, EASBizException, RemoteException;
    public void modifyReqStatus(Context ctx, VoucherAssistRecordCollection records) throws BOSException, EASBizException, RemoteException;
    public boolean mustCheckReq(Context ctx, String[] vchIds, String comId, String periodId, Date date) throws BOSException, EASBizException, RemoteException;
    public IObjectPK submitVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherValidForChecking(Context ctx, String voucherId, VoucherOperateStatusEnum status) throws BOSException, EASBizException, RemoteException;
    public void postVoucherCollection(Context ctx, List pkList) throws BOSException, EASBizException, RemoteException;
    public boolean isAuditStatus(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean isPostStatus(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean unclosePeriod(Context ctx, VoucherInfo model) throws BOSException, RemoteException;
    public void checkVoucher(Context ctx, VoucherInfo model) throws BOSException, EASBizException, RemoteException;
    public void checkVoucher(Context ctx, String id) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherCollection(Context ctx, List pkList) throws BOSException, EASBizException, RemoteException;
    public void postVoucherCollection(Context ctx, List pkList, GLPeriodEndFilter filter) throws BOSException, EASBizException, RemoteException;
    public void chechVoucherBatch(Context ctx, List pkList) throws BOSException, EASBizException, RemoteException;
    public void postCheckValid(Context ctx, IObjectPK pk) throws BOSException, RemoteException;
    public boolean checkVoucherForAudit(Context ctx, IObjectPK id, String accountNumber, int entryDc, String settlementTypeNumber, BigDecimal amount, String comparetype) throws BOSException, EASBizException, RemoteException;
    public BigDecimal getAmoutBySettlement(Context ctx, IObjectPK id, String accountNUmber, int entryDc, String settlementNumber, BigDecimal amount, String compareType) throws BOSException, RemoteException;
    public void autoAntiPostvoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherByEntry(Context ctx, String entryId) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherValidForCheckingByEntry(Context ctx, String entryid, VoucherOperateStatusEnum status) throws BOSException, EASBizException, RemoteException;
    public void antiCheckVoucherByEntry(Context ctx, IObjectPK entryPK) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherByEntry(Context ctx, JournalCollection coll, IObjectPK entrypk) throws BOSException, EASBizException, RemoteException;
    public void checkVoucherByEntries(Context ctx, Set idsset) throws BOSException, EASBizException, RemoteException;
    public String adjustNumber(Context ctx, String id, boolean isSystem, String number) throws BOSException, EASBizException, RemoteException;
    public List requisitionCheckData(Context ctx, String strPeriod, int unChecked, int checked) throws BOSException, EASBizException, RemoteException;
    public IObjectPK[] batchSave(Context ctx, IObjectCollection voucherCols) throws BOSException, EASBizException, RemoteException;
    public IObjectPK reverseSave(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public String managerNumber(Context ctx, String tempNumberq, boolean hasHandNumber, IObjectValue voucher) throws BOSException, EASBizException, RemoteException;
    public VoucherInfo generateReverseVoucherBatch(Context ctx, List srcVchIdList, Object[] genParam) throws BOSException, EASBizException, RemoteException;
    public IObjectPK reverseSaveBatch(Context ctx, List pkList) throws BOSException, EASBizException, RemoteException;
    public void postVoucherOneByOne(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public void postSingleVoucher(Context ctx, Map allParam, String vchid, int vchIndex) throws BOSException, EASBizException, RemoteException;
    public IObjectValue getVoucherWithoutPermissionCheck(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public boolean auditBackVoucher(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public String getOpinionID(Context ctx, IObjectPK pk) throws BOSException, EASBizException, RemoteException;
    public IObjectPK submitAccountAdjustVoucher(Context ctx, VoucherInfo model) throws BOSException, EASBizException, RemoteException;
    public void checkACNoticeCorrelation(Context ctx, String vchId) throws BOSException, EASBizException, RemoteException;
    public void delete(Context ctx, IObjectPK pk, SystemEnum fromSys) throws BOSException, EASBizException, RemoteException;
}